home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics Plus
/
Graphics Plus.iso
/
msdos
/
fractal
/
mand32
/
mand32.doc
next >
Wrap
Text File
|
1993-12-06
|
7KB
|
165 lines
------------------
Mand32 version 2.0
------------------
Mand32 generates a mandelbrot set in a variety of resolutions. Its name is a
combination of mandelbrot, a mathematically chaotic construct, and 32, which
represents the 32,000 color mode Mand is capable of using. This version is
not crippled, but upgrades are only available by order (see bottom).
resolution colors
available 320x200 256, 32k
modes 640x350 32k
640x400 256, 32k
640x480 256, 32k
800x600 256, 32k
1024x768 256
What's a Mandelbrot?
--------------------
Mandelbrot sets live in the complex plane. To generate a set, you take
the simple equation Zn+1 = Zn ^2 + C, Zo = 0, and note whether it goes
to infinity or not. Note that Z and C are complex numbers. Colors are
determined by one of three methods: "scalar", "logarithmic", or "sine".
The scalar method iterates the above equation until the normal of Z
exceedes 2 or the number of iterations exceedes 256. If the number of
iterations exceedes 256, it assumes the point will never reach infinity
and assigns it a color value of zero. Otherwise it assigns a color based
on how many iterations it had to go through before Z exceeded 2. This
generates a traditional set. The logarithmic method runs every point
through 8 iterations, and then assigns it a color proportional to the
logarithm of the norm of Z. This is faster than the traditional method,
and gives the old set a new and intresting look. The sine runs every point
through 4 iterations, takes the sine, and assigns colors based on the result.
You would think that this would destroy all the structure of the set... but
this isn't the case. Try it and see :) Many floating point calculations are
involved for all three methods, so mandelbrot generation tends to be slow
on many machines, but the result are a seris of amazingly beautiful images.
To estimate how many seconds it will take to draw a set on your PC in a
given resolution mode, run mtest.
Instructions
------------
Mand32 has two basic modes: image generation and command. When Mand32 first
starts, it is in image generation mode, any key stroke will interupt it and
place you in command mode.
Image generation mode:
There are 5 methods of image generation: Draft, Rough, Precision, Fast, and
Ultra. Precision is the slowest, but results in the absolute best possible
image. It checks every pixel on the screen. Draft plots one out of every 100
pixels. Rough plots one out of every 25 pixels. Draft and rough are best used
for a quick approximation of a section that you aren't really intrested in,
but want to expand a section of. Fast tries to reduce the number of pixels
that needs to be checked without losing image quality. Basically, it checks
four points, and if they give the same result, draws a filled box. If they
aren't, Fast checks every pixel within the four points. Ultra is simular to
Fast, but uses larger boxes. When you first load Mand32 or when you expand
a section of an image, Mand32 first runs a Rough approximation and then
redraws the screen in Fast. This is so you have a general idea what the
screen will look like before waiting for the full generation. You can enter
command mode at any time by hitting a key.
Command mode:
A hollow box will appear in the upper left hand corner. This box can be
moved across the screen by use of the numeric keypad (make sure num lock is
on). From this point you can expand the section of the set under the box,
change the size of the box, change the display algorithm, or switch back to
image generation in Draft, Rough, Precision, Fast, or Ultra mode.
key strokes:
+ increase box size
- decrease box size
q quit Mand32
E expand screen (zooms back away from set)
e expand box (zooms into screen)
D Draft entire screen
d Draft interior of box
R Rough entire screen
r Rough interior of box
P Precision entire screen
p Precision interior of box
F Fast entire screen
f Fast interior of box
U Ultra entire screen
u Ultra interior of box
a switches between logarithmic and scalar analysis
3 generates a 3D plot of the screen (cool)
c in 32k mode, switches between red/blue/green,
just blue, just green, and just red color schemes
t alternates display type between normal, log, and sine
O.K. lets go over an example: You load of Mand32, and it starts to generate
a Rough image. After the Rough is complete, you decide to skip the Precision
image generation and blow up a section in the upper right hand side. So you
hit a key, and after Mand32 finishes its current row, the command box pops
up. Scroll it over to the right area, and make the box bigger with the '+'
key. However, you suddenly grow curious as to what the Precision image looks
like. You could hit 'P' to Precision generate the whole screen, or you could
hit 'p' to Precision generate just the area under the box. You like what you
see, so 'e' to expand the box...
History
-------
Version 1.0
Slow first try, it worked but not well.
Version 1.3
Sped up routine by factor of 2, added 3d generation.
Beta tested.
Version 2.0
Sped up routine by factor of 9, think I've trimmed all the junk off now.
Minor bugs fixed, changed image generation functions, polished everything.
Known bugs
----------
Only works with cards that support either svga 256 color mode or svga 32k
color mode.
Will crash in log or sine mode if you zoom out from the set, as opposed to
zooming in, too much.
Upgrade Plans
-------------
For 3.0 (sometime January 1994):
Support for a variety of specific video cards, save screen as standard
Windows bitmap, misc cosmetic changes, fix any bugs that come up in 2.0.
Up in air (maybe 3.0, maybe 4.0, maybe never):
Mouse support, generate log file which can later be used as a script, rewrite
part of code in assembly, support for MIDI files as background music, support
64k color mode, palette rotation, go Windows.
To order an upgrade
-------------------
Send $5 to $10 over my way:
Daniel Lemberg
110 West 39th Street
Apartment 515
Baltimore, MD 21210
And I'll ship you the latest version.
-------------------------------------------------------------------------
Whether you order or not, I worked hard to make Mand32 a beautiful and
useable product, and sincerely hope you enjoy it. Feel free to e-mail me
at lemberg@jhunix.hcf.jhu.edu with comments and suggestions.
-------------------------------------------------------------------------